#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
绘图API使用示例
"""

from draw_hydrology_api import plot_hydrology_map, PlottingParameters, create_hydrology_map

def example_1_simple_temperature_map():
    """示例1：简单的温度分布图"""
    print("示例1：绘制简单的温度分布图")
    
    result = plot_hydrology_map(
        nc_filename="chinasea_202212_temp.nc",
        variable="temp",
        title="中国海域温度分布图 - 2022年12月",
        output_filename="temperature_202212.png"
    )
    
    print(f"状态: {result['status']}")
    if result['status'] == 'success':
        print(f"图片路径: {result['output_path']}")
        print(f"相对路径: {result['relative_path']}")
        print(f"图片已保存到: {result['relative_path']}")
    else:
        print(f"错误信息: {result['message']}")
    
    return result

def example_2_with_current_velocity():
    """示例2：温度图 + 流速箭头"""
    print("\n示例2：绘制温度图和流速箭头")
    
    result = plot_hydrology_map(
        nc_filename="chinasea_202212_temp.nc",
        variable="temp",
        uv_nc_filename="chinasea_202212_v.nc",
        u_var="u",
        v_var="v",
        title="中国海域温度和流速分布图 - 2022年12月",
        output_filename="temp_velocity_202212.png",
        skip_arrows=2  # 每2个点绘制一个箭头
    )
    
    print(f"状态: {result['status']}")
    if result['status'] == 'success':
        print(f"图片路径: {result['output_path']}")
        print(f"相对路径: {result['relative_path']}")
        print(f"图片已保存到: {result['relative_path']}")
    else:
        print(f"错误信息: {result['message']}")
    
    return result

def example_3_custom_parameters():
    """示例3：自定义参数的高级用法"""
    print("\n示例3：使用自定义参数")
    
    # 使用 PlottingParameters 类进行更详细的参数配置
    params = PlottingParameters(
        nc_filename="chinasea_202212_temp.nc",
        variable="temp",
        level=0,
        output_filename="custom_temp_map.png",
        figsize=(15, 12),  # 更大的图片尺寸
        dpi=150,  # 较低的DPI用于快速预览
        title="自定义参数的温度分布图",
        add_north_arrow=True,
        add_scale_bar=True,
        scale_bar_length=300  # 300公里的比例尺
    )
    
    result = create_hydrology_map(params)
    
    print(f"状态: {result['status']}")
    if result['status'] == 'success':
        print(f"图片路径: {result['output_path']}")
        print(f"相对路径: {result['relative_path']}")
        print(f"图片已保存到: {result['relative_path']}")
        print(f"元数据: {result['metadata']}")
    else:
        print(f"错误信息: {result['message']}")
    
    return result

def example_4_batch_processing():
    """示例4：批量处理多个NC文件"""
    print("\n示例4：批量处理多个NC文件")
    
    # 定义要处理的文件和变量
    files_to_process = [
        {
            "nc_filename": "chinasea_202212_temp.nc",
            "variable": "temp",
            "title": "温度分布图 - 2022年12月",
            "output_filename": "batch_temp_202212.png"
        },
        {
            "nc_filename": "chinasea_202212_salt.nc",
            "variable": "salt",
            "title": "盐度分布图 - 2022年12月",
            "output_filename": "batch_salt_202212.png"
        }
    ]
    
    results = []
    
    for file_config in files_to_process:
        print(f"\n正在处理: {file_config['nc_filename']}")
        
        result = plot_hydrology_map(
            nc_filename=file_config["nc_filename"],
            variable=file_config["variable"],
            title=file_config["title"],
            output_filename=file_config["output_filename"],
            figsize=(10, 8),
            dpi=200
        )
        
        results.append(result)
        
        if result['status'] == 'success':
            print(f"✅ 成功生成: {result['relative_path']}")
        else:
            print(f"❌ 失败: {result['message']}")
    
    return results

def main():
    """主函数：运行所有示例"""
    print("=== 绘图API使用示例 ===\n")
    
    # 运行示例
    example_1_simple_temperature_map()
    example_2_with_current_velocity()
    example_3_custom_parameters()
    example_4_batch_processing()
    
    print("\n=== 所有示例完成 ===")

if __name__ == "__main__":
    main() 